1. Field of the Invention
The present invention relates to a packet communications system, and more specifically to a packet transfer path control apparatus for transferring a variable-length or fixed-length packet in a unicast system or a multicast/broadcast system, and a control program for use with the apparatus.
2. Description of the Related Art
A communications system operated using a variable-length packet such as an Ethernet (registered trademark), etc. and a fixed-length packet in an asynchronous transfer mode (ATM), etc. has been widely used. The packet transfer path control apparatus in the above-mentioned packet transfer system has the function of transmitting an input packet from an output port determined according to the destination information in the packet. A packet having only one output port corresponding to the destination information, i.e., a packet input from one input port and output through one output port, is referred to as a unicast packet. A packet whose destination information designates a plurality of output ports, and which is input through one input port and output from a plurality of output ports is referred to as a multicast packet. A packet whose destination information corresponds to all output ports, or which has no determined output port, and is eventually output from all output ports is referred to as a broadcast packet.
In normal one-to-one communications, a unicast packet is mainly used in establishing communications. On the other hand, since packets are simultaneously transmitted from one broadcast server to a plurality of subscribers in one-to-many communications, the load of the server is heavy when the communications are performed with all subscribers through one-to-one unicast packet, thereby failing in efficiently using the band of communications circuit connected to the server. Therefore, in the packet transfer path control apparatus, for example, a system of practically copying a packet transmitted from a broadcast server and transferring it as a multicast/broadcast packet to a subscriber has been used.
FIG. 1 is an explanatory view of a multicast packet transfer system using the above-mentioned packet transfer path control apparatus. In FIG. 1, a multicast packet output from a broadcast server 41 is practically copied by a path control device 42, output from a plurality of output ports, thereby allowing subscribers 1 through 3 to receive the packets output from the broadcast server. By providing the path control device 42 for copying the packet in the place closest possible to the subscribers, the one-to-many communications can be realized without increasing the load of the broadcast server and the communications system.
FIG. 2 is a block diagram of the configuration of the conventional packet transfer path control apparatus. FIG. 3 shows an example of the format of a transferred packet. In FIG. 2, the type of a packet is determined, that is, it is determined by a corresponding route determination unit 51 whether a packet input from an input port 50 is a unicast packet or a multicast packet to be output from a plurality of output ports. Furthermore, depending on the contents of an output port management table 52, an output port through which a packet is to be output according to the destination address information about the packet is determined. The information about the packet type and the output port is transmitted together with packet data to a packet data write unit 53.
The packet data write unit 53 writes packet data to a packet buffer 54, and writes to a packet management table 55 an address, etc. in the packet buffer 54 storing the packet data as the management information about the packet corresponding to the output port through which the packet is to be output. A packet data read unit 56 corresponding to each output port 57 reads from the packet buffer 54 according to the management information in the packet management table 55 a packet to be output from the corresponding output port 57, and outputs the packet from the output port 57.
In the packet format shown in FIG. 3, for example, in the example of the Ethernet frame, the number of an output port through which a packet is to be output is stored in the output port management table 52 shown in FIG. 2 corresponding to the destination address of the packet stored after the preamble of the frame, and an input packet is output from the output port.
With the diffusion of the broadband communications technology among common families, the demand for the one-to-many communications technology such as broadcast services, multipoint video phones, etc. that uses multicast/broadcast packets has been quickly increased. To transfer a multicast packet and a broadcast packet, it is necessary to perform a process of copying a packet in the packet transfer path control apparatus as described above. However, the copying process requires a lot of time in the path control device having a large number of output ports, and there occurs a long time delay in the subsequent packet processing including a unicast packet, thereby causing the problem that the performance of the path control device is lowered.
In this connection, there are the following three literatures relating to the conventional technology of the packet transfer technology in the communications system in which a unicast packet and a multicast packet are transferred as described above.                [Literature 1] Japanese Patent Application Laid-open No. Hei 10-2430095 “Switching Hub”        [Literature 2] National Publication of International Patent Application No. 2003-516029 “Method and Apparatus for Wire Speed for IP Multicast Transfer”        [Literature 3] Japanese Patent Application Laid-open No. 2003-158532 “Apparatus and Method for Transferring Multicast Transmission Packet of Multi-MACLSI”        
In Literature 1, the transmission path of a unicast packet is separated from that of a multicast packet so that the multicast packet can be transmitted by setting 1-to-N connection between an input port and output ports using a repeating buffer, and the same packets can be simultaneously transmitted from a plurality of output ports.
In Literature 2, an IP multicast packet received for an IP multicast group is stored in the memory, and a pointer to the area of a packet in the memory is stored for each port to which a copy of a packet is to be transferred. Thus, the IP multicast packet reaching the input port and a copy of a receiving packet are transferred to each member of the IP multicast group at the wire speed.
In Literature 3, in the packet transfer apparatus having a plurality of ports, multicast can be efficiently transferred to an upper device by providing a system of simultaneously writing a plurality of ports to the transmission bus which is an interface with the upper device.
However, in the conventional technology, there is the problem that the packet order between the unicast packet and the multicast/broadcast packet cannot be guaranteed. For example, In Literature 3, it is proposed that a queue exclusive for multicast to which a multicast/broadcast packet is to be written is provided so that the process of copying a packet can be performed in reading operation for each output port. However, since a multicast packet is output by priority, an unicast packet arriving earlier cannot be output until the packet in the queue exclusive for multicast is output, thereby failing in guaranteeing the output order between a unicast packet and a multicast packet.
When the output order of packets is ignored, the upper layer at the packet receiver, for example, the TCP detects it, and a request to resend a packet is issued to a transmitter. If such requests to send are simultaneously issued from a plurality of terminals, congestion frequently occurs in a network, which is not desired in operating the network.